From: kaf24@firebug.cl.cam.ac.uk Date: Thu, 11 May 2006 12:43:09 +0000 (+0100) Subject: I am adding one more test case for vTPM migration. The new one does X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~16047^2~87 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=dd2e5172dcebfa9a19ce02a9de63a1bb76d3ef54;p=xen.git I am adding one more test case for vTPM migration. The new one does local network migration without the 'live' parameter 3 times. The test '04' that does live migration now tests local live migration 3 times. Signed-off-by: Stefan Berger --- diff --git a/tools/xm-test/tests/vtpm/04_vtpm-loc_migr.py b/tools/xm-test/tests/vtpm/04_vtpm-loc_migr.py index 2f68d38dd5..20ffce2f50 100644 --- a/tools/xm-test/tests/vtpm/04_vtpm-loc_migr.py +++ b/tools/xm-test/tests/vtpm/04_vtpm-loc_migr.py @@ -6,6 +6,7 @@ # Positive Test: create domain with virtual TPM attached at build time, # check list of pcrs; locally migrate the domain and # check list of pcrs again +# This test does local live migration. from XmTestLib import * from vtpm_utils import * @@ -50,40 +51,44 @@ domain.closeConsole() old_domid = domid(domName) -try: - status, ouptut = traceCommand("xm migrate -l %s localhost" % - domName, - timeout=90) -except TimeoutError, e: - saveLog(consoleHistory) - vtpm_cleanup(domName) - FAIL(str(e)) - -if status != 0: - saveLog(consoleHistory) - vtpm_cleanup(domName) - FAIL("xm migrate did not succeed. External device migration activated?") - - -domName = domain.getName() -new_domid = domid(domName) - -if (old_domid == new_domid): - vtpm_cleanup(domName) - FAIL("xm migrate failed, domain id is still %s" % old_domid) - -try: - console = domain.getConsole() -except ConsoleError, e: - vtpm_cleanup(domName) - FAIL(str(e)) - -try: - run = console.runCmd("cat /sys/devices/platform/tpm_vtpm/pcrs") -except ConsoleError, e: - saveLog(console.getHistory()) - vtpm_cleanup(domName) - FAIL(str(e)) +loop = 0 +while loop < 3: + try: + status, ouptut = traceCommand("xm migrate -l %s localhost" % + domName, + timeout=90) + except TimeoutError, e: + saveLog(consoleHistory) + vtpm_cleanup(domName) + FAIL(str(e)) + + if status != 0: + saveLog(consoleHistory) + vtpm_cleanup(domName) + FAIL("xm migrate did not succeed. External device migration activated?") + + + domName = domain.getName() + new_domid = domid(domName) + + if (old_domid == new_domid): + vtpm_cleanup(domName) + FAIL("xm migrate failed, domain id is still %s (loop=%d)" % + (old_domid,loop)) + + try: + console = domain.getConsole() + except ConsoleError, e: + vtpm_cleanup(domName) + FAIL(str(e)) + + try: + run = console.runCmd("cat /sys/devices/platform/tpm_vtpm/pcrs") + except ConsoleError, e: + saveLog(console.getHistory()) + vtpm_cleanup(domName) + FAIL(str(e)) + loop += 1 domain.closeConsole() diff --git a/tools/xm-test/tests/vtpm/05_vtpm-loc_migr.py b/tools/xm-test/tests/vtpm/05_vtpm-loc_migr.py new file mode 100644 index 0000000000..8cb1ee084b --- /dev/null +++ b/tools/xm-test/tests/vtpm/05_vtpm-loc_migr.py @@ -0,0 +1,100 @@ +#!/usr/bin/python + +# Copyright (C) International Business Machines Corp., 2006 +# Author: Stefan Berger + +# Positive Test: create domain with virtual TPM attached at build time, +# check list of pcrs; locally migrate the domain and +# check list of pcrs again +# This test does local (non-live) migration. + +from XmTestLib import * +from vtpm_utils import * +import commands +import os +import os.path + +config = {"vtpm":"instance=1,backend=0"} +domain = XmTestDomain(extraConfig=config) +consoleHistory = "" + +try: + console = domain.start() +except DomainError, e: + if verbose: + print e.extra + vtpm_cleanup(domain.getName()) + FAIL("Unable to create domain") + +domName = domain.getName() + +try: + console.sendInput("input") +except ConsoleError, e: + saveLog(console.getHistory()) + vtpm_cleanup(domName) + FAIL(str(e)) + +try: + run = console.runCmd("cat /sys/devices/platform/tpm_vtpm/pcrs") +except ConsoleError, e: + saveLog(console.getHistory()) + vtpm_cleanup(domName) + FAIL(str(e)) + +if re.search("No such file",run["output"]): + vtpm_cleanup(domName) + FAIL("TPM frontend support not compiled into (domU?) kernel") + +consoleHistory = console.getHistory() +domain.closeConsole() + +old_domid = domid(domName) + +loop = 0 +while loop < 3: + try: + status, ouptut = traceCommand("xm migrate %s localhost" % + domName, + timeout=90) + except TimeoutError, e: + saveLog(consoleHistory) + vtpm_cleanup(domName) + FAIL(str(e)) + + if status != 0: + saveLog(consoleHistory) + vtpm_cleanup(domName) + FAIL("xm migrate did not succeed. External device migration activated?") + + + domName = domain.getName() + new_domid = domid(domName) + + if (old_domid == new_domid): + vtpm_cleanup(domName) + FAIL("xm migrate failed, domain id is still %s (loop=%d)" % + (old_domid,loop)) + + try: + console = domain.getConsole() + except ConsoleError, e: + vtpm_cleanup(domName) + FAIL(str(e)) + + try: + run = console.runCmd("cat /sys/devices/platform/tpm_vtpm/pcrs") + except ConsoleError, e: + saveLog(console.getHistory()) + vtpm_cleanup(domName) + FAIL(str(e)) + loop += 1 + +domain.closeConsole() + +domain.stop() + +vtpm_cleanup(domName) + +if not re.search("PCR-00:",run["output"]): + FAIL("Virtual TPM is not working correctly on /dev/vtpm on backend side") diff --git a/tools/xm-test/tests/vtpm/Makefile.am b/tools/xm-test/tests/vtpm/Makefile.am index ec3f775452..e7bc59bc73 100644 --- a/tools/xm-test/tests/vtpm/Makefile.am +++ b/tools/xm-test/tests/vtpm/Makefile.am @@ -3,7 +3,8 @@ SUBDIRS = TESTS = 01_vtpm-list_pos.test \ 02_vtpm-cat_pcrs.test \ 03_vtpm-susp_res.test \ - 04_vtpm-loc_migr.test + 04_vtpm-loc_migr.test \ + 05_vtpm-loc_migr.test XFAIL_TESTS =